package main

import "fmt"

func add(a, b int) int {
	return a + b
}
func minus(a, b int) int {
	return a - b
}

// 函数也是一种数据类型， 通过type给一个函数类型起名
// FuncType 是一个函数类型， 给相同参数，相同返回类型的函数起一个名字

// 应用场景：多态
type FuncType func(int, int) int //

func main() {
	var result int
	result = add(1, 1)
	fmt.Println("result = add(1, 1) ", result)

	result = minus(10, 1)
	fmt.Println("result = minus(10, 1) ", result)

	// 声明一个函数类型的变量， 变量名为 fTest
	var fTest FuncType
	fTest = add

	result = fTest(2, 3)
	fmt.Println("通过定义函数类型", result)

	fTest = minus
	result = fTest(2, 3)
	fmt.Println(result)

}
